#include"unordered_set_map.h"

struct pair_hash
{
    size_t operator() (const pair<int,int>& p) const
    {
        return p.first ^ (p.second << 1);
    }
};

void test01()
{
	const unordered_set<int> s = {6, 31, 0, 18, 29, 72, 10, 14, 16};
    auto it = s.find(31);
    cout << *it << endl;
	// // for (auto& e : s)
	// // {
    // //     cout << e << ' ';
    // //     e = 10;
    // // }
    // auto it = s.begin();
    // while(it != s.end())
    // {
    //     cout << *it << ' ';
    //     // *it = 10;
    //     ++it;
    // }

    // unordered_set<pair<int,int>, pair_hash> s1;
    // for(int i = 1; i < 5; i++)
    //     s1.insert({i, i}); 
    // for(auto& e : s1)
    //     cout << e.first << ' ' << e.second << endl;
}

void test02()
{
    // unordered_map<int, int> s = {{6, 31}, {0, 18}, {29, 72}, {10, 14}};
    // s[6] = 10;
    // for(auto e : s)
    // {
    //     cout << e.first << ' ' << e.second << endl;
    // }
    // cout << endl;
    // s[5];
    // s[999] = 100;
    // for(auto e : s)
    // {
    //     cout << e.first << ' ' << e.second << endl;
    // }
    unordered_map<string, string> s;
    s.insert({"left", "左"});
    s.insert({"right", "右"});
    s.insert({"sort", "排序"});
    s.insert({"sort", "排序"});
    s.insert({"sort", "排序"});
    s.insert({"sort", "排序"});
    for(auto e : s)
        cout << e.first << ' ' << e.second << endl;
    cout << endl;
    // // s["left"] = "剩余";
    // for(auto& e : s)
    // {
    //     cout << e.first << ' ' << e.second << endl;
    //     // e.first = "xxx";
    //     e.second = "xxx";
    // }
}
int main()
{
	test02();
	return 0;
}